﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LojaEmDia.Negocio;

namespace LojaEmDia.Negocio.Dominio
{
    class DominioCidade : DominioBase
    {
        private static DominioCidade _instancia;
        Repository<CIDADE, ModeloLojaContainer> _Repository = null;

        private DominioCidade()
        {
            _Repository = new Repository<CIDADE, ModeloLojaContainer>(this.Contexto);
            _Repository.KeyProperty = "COD_CIDADE";
        }

        public static DominioCidade Me
        {
            get {

                if (_instancia == null)
                    _instancia = new DominioCidade();
                return _instancia;
            }
        }


        public List<CIDADE> Listar()
        {
            var query = (from _cargos in this.Contexto.CIDADE
                         select _cargos);

            return query.ToList();

        }




        internal IList<CIDADE> Listar(int pagina, int quantidadeRegistros)
        {
            System.Linq.Expressions.Expression<Func<CIDADE, object>> sortexpression = e => e.NOM_CIDADE;
            return _Repository.SelectAll(sortexpression, quantidadeRegistros, pagina * quantidadeRegistros);
        }

        internal List<CIDADE> ListarPorEstado(int estado)
        {
            var query = (from c in this.Contexto.CIDADE
                         where c.COD_ESTADO == estado
                         select c);

            return query.ToList();
        }

        internal void Salvar(List<CIDADE> lista)
        {
            foreach (CIDADE c in lista)
            {
                if (c.COD_CIDADE == 0)
                    this.Contexto.CIDADE.AddObject(c);
            }
            this.Contexto.SaveChanges();
        }
    }
}
